#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	scanf("%d", &n);
	int a[n], s[n];
	bool t[n]={false};
    memset(t, false, sizeof(t));
	double ave=0;
	for(int i=0; i<n; i++)
	{
		scanf("%d", &a[i]);
		s[i]=a[i];
	}
	sort(a,a+n);
	for(int i=0; i<n; i++)
		ave+=(n-i-1)*a[i];
	ave/=n;
	for(int i=0; i<n; i++)
	{
		for(int j=0; ; j++)
			if((a[i] == s[j]) && (t[j] == false))
			{
				printf("%d ", j+1);
				t[j]=true;
				break;
			}
	}
	printf("\n%.2lf", ave);
	return 0;
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

struct P{
    int t;
    int id;
};

bool cmp(P a, P b) {
    return a.t < b.t;
}
vector<P> p;
int main() {
    int n;
    double sum = 0;
    cin >> n;
    P temp;
    for(int i=0; i<n; i++) {
        cin >> temp.t;
        temp.id = i+1;
        p.push_back(temp);
    }
    sort(p.begin(), p.end(), cmp);
    for(int i=0; i<n; i++) cout << p[i].id << " ";
    cout << endl;
    for(int i=0; i<n-1; i++) sum += p[i].t * (n-1-i);
    printf("%.2lf", sum/n);
    return 0;
}